package net.zoneland.knowledge.model;


import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Optional;

import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 党员信息.
 * @author zmq
 * Date 2022/8/24 16:54
 */
public class PartyUser implements Serializable {

    private static final long serialVersionUID = -1L;

    /**
     *姓名.
     */
    private String displayName;

    /**
     *员工编号.
     */
    private String ygId;

    /**
     *手机号码.
     */
    private String mobile;

    /**
     *入党时间.
     */
    private String partyDate;

    /**
     *转正时间.
     */
    private String toFullMembersDate;

    /**
     *加入党建工作时间.
     */
    private String joinDjWorkTime;

    /**
     *从事党建工作时间.
     */
    private String djWorkTime;

    /**
     *职务.
     */
    private String administrativeDuties;

    /**
     *职称.
     */
    private String professionalTitleLevel;

    /**
     *资深人员.
     */
    private String isSenior;

    /**
     *挂职.
     */
    private String isSuspendJob;

    /**
     *网格指导员.
     */
    private String isGridSupervisor;

    /**
     *职级.
     */
    private String position;

    /**
     *上一次职级晋升时间.
     */
    private String lastUpgradeTime;

    /**
     *双向交流.
     */
    private String isTwoWayCommunication;

    /**
     *何时何地由何人介绍入党.
     */
    private String whenWhereWhoParty;

    /**
     *所属组织ID.
     */
    private String orgUUID;

    /**
     *所属组织名称.
     */
    private String orgName;

    /**
     *所属党委书记.
     */
    private String dwsj;

    /**
     * oa账号.
     */
    private String oaId;

    /**
     * 导入时间.
     */
    private Date importTime;

    /**
     * 是否是兼职，0专职，1兼职.
     */
    private Boolean partTime;

    /**
     * 是否是党务工作者,0不是，1是.
     */
    private Boolean partyWorker;

    /**
     * 邮件.
     */
    private String email;

    /**
     * 公司编号.
     */
    private String companyDn;

    /**
     * 是否干事.
     */
    private Boolean ganShi;

    /**
     * 是否先锋岗.
     */
    private Boolean pioneerPost;

    /**
     * 先锋岗piid.
     */
    private String pioneerPostPiid;

    /**
     * 所属责任区信息.
     */
    private List<GridDutyCommandosUser> dutyList;

    /**
     * 所属突击队信息.
     */
    private List<GridDutyCommandosUser> commandosList;

    /**
     * 所属网格信息.
     */
    private List<GridDutyCommandosUser> gridList;

    /**
     * 党员对应组织信息
     */
    private PartyOrg partyOrg;

    /**
     * 是否是省公司管理层..
     */
    private Boolean provinceLeader = Boolean.FALSE;

    /**
     * 部门dn，用于判断省公司管理层.
     */
    private String deptDn;

    /**
     * 组织衜称.
     */
    private String orgShortName;

    /**
     * 书记头衔.
     */
    private String orgSj;

    /**
     * 组织委员头衔.
     */
    private String orgDw;

    /**
     * 组织名称简称2.
     */
    private String shortName2;

    /**
     * 党内职务
     */
    private String partyDuty;

    /**
     * 前端展现职务.
     */
    private String positionForDisplay;

    /**
     * 是否是简版信息
     */
    private boolean simpleData;

    /**
     * 是否已收藏
     */
    private boolean favoriteStatus;

    /**
     * 所属公司
     */
    private String companyName;

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getOrgName() {
        return orgName;
    }
    /**
     * 设置 属性值.
     * @param orgName 属性值
     */
    public void setOrgName(final String orgName) {
        this.orgName = orgName;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getDisplayName() {
        return displayName;
    }
    /**
     * 设置 属性值.
     * @param displayName 属性值
     */
    public void setDisplayName(final String displayName) {
        this.displayName = displayName;
    }
    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getYgId() {
        return ygId;
    }
    /**
     * 设置 属性值.
     * @param ygId 属性值
     */
    public void setYgId(final String ygId) {
        this.ygId = ygId;
    }
    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getMobile() {
        return mobile;
    }
    /**
     * 设置 属性值.
     * @param mobile 属性值
     */
    public void setMobile(final String mobile) {
        this.mobile = mobile;
    }
    /**
     * 获取 入党时间.
     * @return 入党时间
     */
    public String getPartyDate() {
        return partyDate;
    }
    /**
     * 设置 入党时间.
     * @param partyDate 入党时间
     */
    public void setPartyDate(final String partyDate) {
        this.partyDate = partyDate;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getToFullMembersDate() {
        return toFullMembersDate;
    }
    /**
     * 设置 属性值.
     * @param toFullMembersDate 属性值
     */
    public void setToFullMembersDate(final String toFullMembersDate) {
        this.toFullMembersDate = toFullMembersDate;
    }
    /**
     * 获取 属性值.
     * @return 属性值.
     */
    public String getJoinDjWorkTime() {
        return joinDjWorkTime;
    }
    /**
     * 设置 属性值.
     * @param joinDjWorkTime 属性值
     */
    public void setJoinDjWorkTime(final String joinDjWorkTime) {
        this.joinDjWorkTime = joinDjWorkTime;
    }
    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getDjWorkTime() {
        return djWorkTime;
    }
    /**
     * 设置 属性值.
     * @param djWorkTime 属性值
     */
    public void setDjWorkTime(final String djWorkTime) {
        this.djWorkTime = djWorkTime;
    }
    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getAdministrativeDuties() {
        return administrativeDuties;
    }
    /**
     * 设置 属性值.
     * @param administrativeDuties 属性值
     */
    public void setAdministrativeDuties(final String administrativeDuties) {
        this.administrativeDuties = administrativeDuties;
    }
    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getProfessionalTitleLevel() {
        return professionalTitleLevel;
    }
    /**
     * 设置 属性值.
     * @param professionalTitleLevel 属性值
     */
    public void setProfessionalTitleLevel(final String professionalTitleLevel) {
        this.professionalTitleLevel = professionalTitleLevel;
    }
    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getIsSenior() {
        return isSenior;
    }

    /**
     * 设置 属性值.
     * @param isSenior 属性值
     */
    public void setIsSenior(final String isSenior) {
        this.isSenior = isSenior;
    }
    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getIsSuspendJob() {
        return isSuspendJob;
    }
    /**
     * 设置 属性值.
     * @param isSuspendJob 属性值
     */
    public void setIsSuspendJob(final String isSuspendJob) {
        this.isSuspendJob = isSuspendJob;
    }
    /**
     * 获取 网格指导员.
     * @return 网格指导员
     */
    public String getIsGridSupervisor() {
        return isGridSupervisor;
    }
    /**
     * 设置 网格指导员.
     * @param isGridSupervisor 网格指导员
     */
    public void setIsGridSupervisor(final String isGridSupervisor) {
        this.isGridSupervisor = isGridSupervisor;
    }

    /**
     * 获取 职级.
     * @return 职级
     */
    public String getPosition() {
        return position;
    }

    /**
     * 设置 职级.
     * @param position 职级
     */
    public void setPosition(final String position) {
        this.position = position;
    }

    /**
     * 获取 上一次职级晋升时间.
     * @return 上一次职级晋升时间
     */
    public String getLastUpgradeTime() {
        return lastUpgradeTime;
    }

    /**
     * 设置 上一次职级晋升时间.
     * @param lastUpgradeTime 上一次职级晋升时间
     */
    public void setLastUpgradeTime(final String lastUpgradeTime) {
        this.lastUpgradeTime = lastUpgradeTime;
    }

    /**
     * 获取 双向交流.
     * @return 双向交流
     */
    public String getIsTwoWayCommunication() {
        return isTwoWayCommunication;
    }

    /**
     * 设置 双向交流.
     * @param isTwoWayCommunication 双向交流
     */
    public void setIsTwoWayCommunication(final String isTwoWayCommunication) {
        this.isTwoWayCommunication = isTwoWayCommunication;
    }

    /**
     * 获取 何时何地由何人介绍入党.
     * @return 何时何地由何人介绍入党
     */
    public String getWhenWhereWhoParty() {
        return whenWhereWhoParty;
    }

    /**
     * 设置 何时何地由何人介绍入党.
     * @param whenWhereWhoParty 何时何地由何人介绍入党
     */
    public void setWhenWhereWhoParty(final String whenWhereWhoParty) {
        this.whenWhereWhoParty = whenWhereWhoParty;
    }

    /**
     * 获取 所属组织ID.
     * @return 所属组织ID
     */
    public String getOrgUUID() {
        return orgUUID;
    }

    /**
     * 设置 所属组织ID.
     * @param orgUUID 所属组织ID
     */
    public void setOrgUUID(final String orgUUID) {
        this.orgUUID = orgUUID;
    }

    /**
     * 获取 oa账号.
     * @return oa账号
     */
    public String getOaId() {
        return oaId;
    }

    /**
     * 设置 oa账号.
     * @param oaId oa账号
     */
    public void setOaId(final String oaId) {
        this.oaId = oaId;
    }

    /**
     * 获取 导入时间.
     * @return 导入时间
     */
    public Date getImportTime() {
        return Optional.ofNullable(importTime).map(it -> (Date) it.clone()).orElse(null);
    }

    /**
     * 设置 导入时间.
     * @param importTime 导入时间
     */
    public void setImportTime(final Date importTime) {
        this.importTime = Optional.ofNullable(importTime).map(it -> (Date) it.clone()).orElse(null);
    }

    /**
     * 获取 是否是兼职，0专职，1兼职.
     *
     * @return partTime 是否是兼职，0专职，1兼职
     */
    public Boolean getPartTime() {
        return this.partTime;
    }

    /**
     * 设置 是否是兼职，0专职，1兼职.
     *
     * @param partTime 是否是兼职，0专职，1兼职
     */
    public void setPartTime(final Boolean partTime) {
        this.partTime = partTime;
    }

    /**
     * 获取 是否是党务工作者0不是，1是.
     *
     * @return partyWorker 是否是党务工作者0不是，1是
     */
    public Boolean getPartyWorker() {
        return this.partyWorker;
    }

    /**
     * 设置 是否是党务工作者0不是，1是.
     *
     * @param partyWorker 是否是党务工作者0不是，1是
     */
    public void setPartyWorker(final Boolean partyWorker) {
        this.partyWorker = partyWorker;
    }

    /**
     * 获取 邮件.
     * @return email 邮件
     */
    public String getEmail() {
        return this.email;
    }

    /**
     * 设置 邮件.
     *
     * @param email 邮件
     */
    public void setEmail(final String email) {
        this.email = email;
    }

    /**
     * 获取 公司编号.
     * @return companyDn 公司编号
     */
    public String getCompanyDn() {
        return this.companyDn;
    }

    /**
     * 设置 公司编号.
     * @param companyDn 公司编号
     */
    public void setCompanyDn(final String companyDn) {
        this.companyDn = companyDn;
    }

    /**
     * 获取 所属党委书记.
     *
     * @return dwsj 所属党委书记.
     */
    public String getDwsj() {
        return this.dwsj;
    }

    /**
     * 设置 所属党委书记.
     *
     * @param dwsj 所属党委书记.
     */
    public void setDwsj(final String dwsj) {
        this.dwsj = dwsj;
    }

    /**
     * 获取是否干事.
     * @return 是否干事
     */
    public Boolean getGanShi() {
        return this.ganShi;
    }

    /**
     * 设置是否干事.
     * @param ganShi 是否干事
     */
    public void setGanShi(final Boolean ganShi) {
        this.ganShi = ganShi;
    }

    /**
     * 获取是否先锋岗.
     * @return 是否先锋岗
     */
    public Boolean getPioneerPost() {
        return pioneerPost;
    }

    /**
     * 设置是否先锋岗.
     * @param pioneerPost 是否先锋岗
     */
    public void setPioneerPost(final Boolean pioneerPost) {
        this.pioneerPost = pioneerPost;
    }

    /**
     * 设置 dutyList.
     *
     * @return dutyList
     */
    public List<GridDutyCommandosUser> getDutyList() {
        return dutyList;
    }

    /**
     * 设置 dutyList.
     *
     * @param dutyList dutyList
     */
    public void setDutyList(List<GridDutyCommandosUser> dutyList) {
        this.dutyList = dutyList;
    }

    /**
     * 设置 commandosList.
     *
     * @return commandosList
     */
    public List<GridDutyCommandosUser> getCommandosList() {
        return commandosList;
    }

    /**
     * 设置 commandosList.
     *
     * @param commandosList commandosList
     */
    public void setCommandosList(List<GridDutyCommandosUser> commandosList) {
        this.commandosList = commandosList;
    }

    /**
     * 获取 partyOrg.
     *
     * @return partyOrg
     */
    public PartyOrg getPartyOrg() {

        return partyOrg;
    }

    /**
     * 设置 partyOrg.
     *
     * @param partyOrg partyOrg
     */
    public void setPartyOrg(final PartyOrg partyOrg) {

        this.partyOrg = partyOrg;
    }

    /**
     * 获取 provinceLeader.
     *
     * @return provinceLeader
     */
    public Boolean getProvinceLeader() {

        return provinceLeader;
    }

    /**
     * 设置 provinceLeader.
     *
     * @param provinceLeader provinceLeader
     */
    public void setProvinceLeader(final Boolean provinceLeader) {

        this.provinceLeader = provinceLeader;
    }

    /**
     * 获取 deptDn.
     *
     * @return deptDn
     */
    public String getDeptDn() {

        return deptDn;
    }

    /**
     * 设置 deptDn.
     *
     * @param deptDn deptDn
     */
    public void setDeptDn(final String deptDn) {

        this.deptDn = deptDn;
    }

    /**
     * 获取 orgShortName.
     *
     * @return orgShortName
     */
    public String getOrgShortName() {

        return orgShortName;
    }

    /**
     * 设置 orgShortName.
     *
     * @param orgShortName orgShortName
     */
    public void setOrgShortName(final String orgShortName) {

        this.orgShortName = orgShortName;
    }

    /**
     * 获取 orgSj.
     *
     * @return orgSj
     */
    public String getOrgSj() {

        return orgSj;
    }

    /**
     * 设置 orgSj.
     *
     * @param orgSj orgSj
     */
    public void setOrgSj(final String orgSj) {

        this.orgSj = orgSj;
    }

    /**
     * 获取 orgDw.
     *
     * @return orgDw
     */
    public String getOrgDw() {

        return orgDw;
    }

    /**
     * 设置 orgDw.
     *
     * @param orgDw orgDw
     */
    public void setOrgDw(final String orgDw) {

        this.orgDw = orgDw;
    }

    /**
     * 获取 shortName2.
     *
     * @return shortName2
     */
    public String getShortName2() {

        return shortName2;
    }

    /**
     * 获取 gridList.
     *
     * @return gridList
     */
    public List<GridDutyCommandosUser> getGridList() {

        return gridList;
    }

    /**
     * 设置 gridList.
     *
     * @param gridList gridList
     */
    public void setGridList(final List<GridDutyCommandosUser> gridList) {

        this.gridList = gridList;
    }

    /**
     * 设置 shortName2.
     *
     * @param shortName2 shortName2
     */
    public void setShortName2(final String shortName2) {

        this.shortName2 = shortName2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("displayName", displayName)
                .append("ygId", ygId)
                .append("mobile", mobile)
                .append("partyDate", partyDate)
                .append("toFullMembersDate", toFullMembersDate)
                .append("joinDjWorkTime", joinDjWorkTime)
                .append("djWorkTime", djWorkTime)
                .append("administrativeDuties", administrativeDuties)
                .append("professionalTitleLevel", professionalTitleLevel)
                .append("isSenior", isSenior)
                .append("isSuspendJob", isSuspendJob)
                .append("isGridSupervisor", isGridSupervisor)
                .append("position", position)
                .append("lastUpgradeTime", lastUpgradeTime)
                .append("isTwoWayCommunication", isTwoWayCommunication)
                .append("whenWhereWhoParty", whenWhereWhoParty)
                .append("orgUUID", orgUUID)
                .append("orgName", orgName)
                .append("dwsj", dwsj)
                .append("oaId", oaId)
                .append("importTime", importTime)
                .append("partTime", partTime)
                .append("partyWorker", partyWorker)
                .append("email", email)
                .append("companyDn", companyDn)
                .append("ganShi", ganShi)
                .append("pioneerPost", pioneerPost)
                .append("pioneerPostPiid", pioneerPostPiid)
                .append("dutyList", dutyList)
                .append("commandosList", commandosList)
                .append("positionForDisplay", positionForDisplay)
                .toString();
    }

    public String getPartyDuty() {
        return partyDuty;
    }

    public void setPartyDuty(final String partyDuty) {
        this.partyDuty = partyDuty;
    }

    /**
     * 获取 先锋岗piid.
     *
     * @return pioneerPostPiid 先锋岗piid.
     */
    public String getPioneerPostPiid() {
        return this.pioneerPostPiid;
    }

    /**
     * 设置 先锋岗piid.
     *
     * @param pioneerPostPiid 先锋岗piid.
     */
    public void setPioneerPostPiid(final String pioneerPostPiid) {
        this.pioneerPostPiid = pioneerPostPiid;
    }

    /**
     * 获取 前端展现职务.
     *
     * @return positionForDisplay 前端展现职务.
     */
    public String getPositionForDisplay() {
        return this.positionForDisplay;
    }

    /**
     * 设置 前端展现职务.
     *
     * @param positionForDisplay 前端展现职务.
     */
    public void setPositionForDisplay(final String positionForDisplay) {
        this.positionForDisplay = positionForDisplay;
    }

    public boolean isSimpleData() {
        return simpleData;
    }

    public void setSimpleData(final boolean simpleData) {
        this.simpleData = simpleData;
    }


    public boolean isFavoriteStatus() {
        return favoriteStatus;
    }

    public void setFavoriteStatus(final boolean favoriteStatus) {
        this.favoriteStatus = favoriteStatus;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(final String companyName) {
        this.companyName = companyName;
    }
}

